home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_oth / forchek1 / intrins.h < prev    next >
Text File  |  1991-11-05  |  3KB  |  116 lines

  1. /* intrins.h:
  2.    List of intrinsic functions for use by find_intrinsic
  3.    and check_intrins_args.  You may add locally available intrinsics
  4.    to this list (order not important).
  5.  
  6.     Copyright (C) 1991 by Robert K. Moniot.
  7.     This program is free software.  Permission is granted to
  8.     modify it and/or redistribute it, retaining this notice.
  9.     No guarantees accompany this software.
  10.  
  11.  
  12. */
  13.  
  14.  
  15.  /* Define positional flags to allow specifying more
  16.     than one allowed type of argument for generics.
  17.   */
  18.  
  19. #define I   (1 << type_INTEGER)
  20. #define R   (1 << type_REAL)
  21. #define D   (1 << type_DP)
  22. #define C   (1 << type_COMPLEX)
  23. #define L   (1 << type_LOGICAL)
  24. #define STR (1 << type_STRING)
  25.  
  26.  
  27.  /* Table contains: name, num_args, arg_type, result_type.
  28.     Note: num_args == -1 means 1 or 2 args, -2 means 2 or more args.
  29.   */
  30.  
  31. {"INT",  1, I|R|D|C,type_INTEGER},
  32. {"IFIX", 1, R, type_INTEGER},
  33. {"IDINT", 1, D, type_INTEGER},
  34. {"REAL", 1, I|R|D|C,type_REAL},
  35. {"FLOAT", 1, I, type_REAL},
  36. {"SNGL", 1, D, type_REAL},
  37. {"DBLE", 1, I|R|D|C,type_DP},
  38. {"CMPLX", -1, I|R|D|C,type_COMPLEX},
  39. {"ICHAR", 1, STR, type_INTEGER},
  40. {"CHAR", 1, I, type_STRING},
  41. {"AINT", 1, R|D, type_GENERIC},
  42. {"DINT", 1, D, type_DP},
  43. {"ANINT", 1, R|D, type_GENERIC},
  44. {"DNINT", 1, D, type_DP},
  45. {"NINT", 1, R|D, type_INTEGER},
  46. {"IDNINT", 1, D, type_INTEGER},
  47. {"ABS",  1, I|R|D|C,type_GENERIC},
  48. {"IABS", 1, I, type_INTEGER},
  49. {"DABS", 1, D, type_DP},
  50. {"CABS", 1, C, type_REAL},
  51. {"MOD",  2, I|R|D, type_GENERIC},
  52. {"AMOD", 2, R, type_REAL},
  53. {"DMOD", 2, D, type_DP},
  54. {"SIGN", 2, I|R|D, type_GENERIC},
  55. {"ISIGN", 2, I, type_INTEGER},
  56. {"DSIGN", 2, D, type_DP},
  57. {"DIM",  2, I|R|D, type_GENERIC},
  58. {"IDIM", 2, I, type_INTEGER},
  59. {"DDIM", 2, D, type_DP},
  60. {"DPROD", 2, R, type_DP},
  61. {"MAX",  -2, I|R|D, type_GENERIC},
  62. {"MAX0", -2, I, type_INTEGER},
  63. {"AMAX1", -2, R, type_REAL},
  64. {"DMAX1", -2, D, type_DP},
  65. {"AMAX0", -2, I, type_REAL},
  66. {"MAX1", -2, R, type_INTEGER},
  67. {"MIN",  -2, I|R|D, type_GENERIC},
  68. {"MIN0", -2, I, type_INTEGER},
  69. {"AMIN1", -2, R, type_REAL},
  70. {"DMIN1", -2, D, type_DP},
  71. {"AMIN0", -2, I, type_REAL},
  72. {"MIN1", -2, R, type_INTEGER},
  73. {"LEN",  1, STR, type_INTEGER},
  74. {"INDEX", 2, STR, type_INTEGER},
  75. {"AIMAG", 1, C, type_REAL},
  76. {"CONJG", 1, C, type_COMPLEX},
  77. {"SQRT", 1, R|D|C, type_GENERIC},
  78. {"DSQRT", 1, D, type_DP},
  79. {"CSQRT", 1, C, type_COMPLEX},
  80. {"EXP",  1, R|D|C, type_GENERIC},
  81. {"DEXP", 1, D, type_DP},
  82. {"CEXP", 1, C, type_COMPLEX},
  83. {"LOG",  1, R|D|C, type_GENERIC},
  84. {"ALOG", 1, R, type_REAL},
  85. {"DLOG", 1, D, type_DP},
  86. {"CLOG", 1, C, type_COMPLEX},
  87. {"LOG10", 1, R|D, type_GENERIC},
  88. {"ALOG10", 1, R, type_REAL},
  89. {"DLOG10", 1, D, type_DP},
  90. {"SIN",  1, R|D|C, type_GENERIC},
  91. {"DSIN", 1, D, type_DP},
  92. {"CSIN", 1, C, type_COMPLEX},
  93. {"COS",  1, R|D|C, type_GENERIC},
  94. {"DCOS", 1, D, type_DP},
  95. {"CCOS", 1, C, type_COMPLEX},
  96. {"TAN",  1, R|D, type_GENERIC},
  97. {"DTAN", 1, D, type_DP},
  98. {"ASIN", 1, R|D, type_GENERIC},
  99. {"DASIN", 1, D, type_DP},
  100. {"ACOS", 1, R|D, type_GENERIC},
  101. {"DACOS", 1, D, type_DP},
  102. {"ATAN", 1, R|D, type_GENERIC},
  103. {"DATAN", 1, D, type_DP},
  104. {"ATAN2", 2, R|D, type_GENERIC},
  105. {"DATAN2", 2, D, type_DP},
  106. {"SINH", 1, R|D, type_GENERIC},
  107. {"DSINH", 1, D, type_DP},
  108. {"COSH", 1, R|D, type_GENERIC},
  109. {"DCOSH", 1, D, type_DP},
  110. {"TANH", 1, R|D, type_GENERIC},
  111. {"DTANH", 1, D, type_DP},
  112. {"LGE",  2, STR, type_LOGICAL},
  113. {"LGT",  2, STR, type_LOGICAL},
  114. {"LLE",  2, STR, type_LOGICAL},
  115. {"LLT",  2, STR, type_LOGICAL},
  116.